Ext.onReady(function() {
    var psize = 22;
    var store;
    var jReader1;
    var nodeid;
    var nodename;
    
     var openUrl = basePath + 'JarpListener?className=cn.com.jsepc.rep.reffact.reffact_table';
    openUrl += '&methodName=getGrid&paramCount=3';
    jReader1 = new Ext.data.JsonReader( {
        root : 'data',
        totalProperty : 'totalCount',
        fields : [ {
            name : 'repid'
        }, {
            name : 'repcode'
        }, {
            name : 'repname'
        }, {
            name : 'cataid'
        }, {
            name : 'cataname'
        }, {
            name : 'repdesc'
        }, {
            name : 'desc'
        }, {
            name : 'dataprec'
        }, {
            name : 'dataunit'
        }, {
            name : 'department'
        }, {
            name : 'departmentid'
        }, {
            name : 'sourcetype'
        }, {
            name : 'datatype'
        }, {
            name : 'updatetime'
        }, {
            name : 'reffact'
        }, {
            name : 'repvaluecol'
        }, {
            name : 'issum'
        }, {
            name : 'isvalid'
        } ]
    });

    store = new Ext.data.Store( {
        storeId : 'store1',
        proxy : new Ext.data.HttpProxy( {
            url : openUrl
        }),
        reader : jReader1,
        baseParams : {
            param_0 : 0,
            param_1 : psize,
            param_2 : ""
        }
    });

    var sm = new Ext.grid.CheckboxSelectionModel( {
        singleSelect : false,
        header:''
    });

    var cm = new Ext.grid.ColumnModel( [ sm, {
        header : '指标编号',
        sortable : true,
        hidden : true,
        dataIndex : 'repid'
    }, {
        header : '指标编码',
        sortable : true,
        width:50,
        dataIndex : 'repcode'
    }, {
        header : '指标名称',
        sortable : true,
        width:150,
        dataIndex : 'repname'
    }, {
        header : '所属分类',
        sortable : true,
        hidden : true,
        dataIndex : 'cataid'
    }, {
        header : '所属分类',
        hidden : true,
        sortable : true,
        dataIndex : 'cataname'
    }, {
        header : '指标含义',
        sortable : true,
        hidden : true,
        dataIndex : 'repdesc'
    }, {
        header : '算法描述',
        hidden : true,
        sortable : true,
        dataIndex : 'desc'
    }, {
        header : '数据精度',
        sortable : true,
        hidden : true,
        width:50,
        dataIndex : 'dataprec'
    }, {
        header : '数据单位',
        hidden : true,
        sortable : true,
        dataIndex : 'dataunit'
    }, {
        header : '归口部门',
        hidden : true,
        sortable : true,
        width:150,
        dataIndex : 'department'
    }, {
        hidden : true,
        header : '归口部门ID',
        sortable : true,
        dataIndex : 'departmentid'
    }, {
        header : '数据来源类型',
        sortable : true,
        hidden : true,
        dataIndex : 'sourcetype',
        renderer : function(v) {
            if (v == 1) {
                return "自动抽取";
            } else if (v == 2) {
                return "手工填报";
            }
        }
    }, {
        header : '数据口径',
        sortable : true,
        dataIndex : 'datatype',
        hidden : true
    }, {
        header : '更新周期',
        sortable : true,
        width:50,
        hidden : true,
        dataIndex : 'updatetime',
        renderer : function(v) {
            if (v == 1) {
                return "年";
            } else if (v == 2) {
                return "季";
            } else if (v == 3) {
                return "月";
            } else if (v == 4) {
                return "日";
            } else if (v == 5) {
                return "时";
            } else if (v == 6) {
                return "分";
            }
        }
    }, {
        header : '关联事实表',
        sortable : true,
        dataIndex : 'reffact'
    }, {
        hidden : true,
        header : '指标值字段',
        sortable : true,
        dataIndex : 'repvaluecol'
    }, {
        header : '是否聚合',
        sortable : true,
        hidden : true,
        dataIndex : 'issum',
        renderer : function(v) {
            if (v == 1) {
                return "是";
            } else if (v == 0) {
                return "否";
            }
        }
    }, {
        header : '是否可用',
        sortable : true,
        hidden : true,
        dataIndex : 'isvalid',
        renderer : function(v) {
            if (v == 1) {
                return "是";
            } else if (v == 0) {
                return "否";
            }
        }
    } ]);

    // *********************头部Toolbar**************************//
    
    var toolbar = new Ext.Toolbar( {
        id : 'toolbar',
        stateful : true,
        items : [ '-', {
            id : 'get-reffact',
            text : '计算',
            handler : function() {
        		httpReffact();
        }
        }]
    });
    
    var grid = new Ext.grid.GridPanel( {
        id : 'ggg',
        store : store,
        title : '指标列表',
        tbar : toolbar,
        viewConfig : {
            forceFit : true
        },
    	sm : sm,
        cm : cm,
        frame : true,
        columnLines : true,
        autoWidth:true,
        loadMask:true,
        stateful : true,
        stateId : 'grid',
        bbar : new Ext.PagingToolbar( {
            store : store,
            paramNames : {
                start : 'param_0',
                limit : 'param_1'
            },
            emptyMsg : '没有数据需要显示',
            displayInfo : true,
            pageSize : psize
           
        })
    });
    store.load();

    // **********************指标管理整体框架*********************//

    var viewport = new Ext.Viewport( {
        layout : 'fit',
            frame : true,
            deferredRender : false,
            activeTab : 0,
            items : [grid]
    });
    
    function httpReffact(){
    	var rows = grid.getSelectionModel().getSelections(); 
    	var t_reffact = "";
    	if(rows.length == 0){
    		Ext.Msg.alert('提示：',"您未选择事实表");
    		}else{
    			for(var i=0;i<rows.length;i++){
            	t_reffact = t_reffact + rows[i].data.reffact +",";
    			}
	           Ext.MessageBox.show({
                title:'提示',
                msg: ' 是否要计算  '+t_reffact+' 这些指标',
                //  buttons: Ext.MessageBox.YESNOCANCEL,
                buttons:{
                    'yes':'确定',
                    'no':'取消'
                },
                fn: showResult,
                animEl: 'get-reffact',
                icon: Ext.MessageBox.QUESTION
            });
            
            function showResult(btn){
        if(btn=='yes'){
            saveUrl_manage = '?className=cn.com.jsepc.rep.report.GetHandmadeReport';
        	            saveUrl_manage += '&methodName=getSelections';
        	            saveUrl_manage += '&paramCount=1&param_0='+t_reffact.substring(0,t_reffact.length-1);
        	            saveUrl_manage = basePath + 'JarpListener' + saveUrl_manage;
        	            httpR_itemInfo = getXMLHttpRequest();
        	            httpR_itemInfo.onreadystatechange = returnReffact;
        	            httpR_itemInfo.open("POST", saveUrl_manage, true);
        	            httpR_itemInfo.send();
        }
        else if(btn=='no'){
		 return ;
        }
    };
    		}}
    
    function returnReffact() {		
        if (httpR_itemInfo.readyState == 4) {   
            if (httpR_itemInfo.status == 200) {
                ret = httpR_itemInfo.responseText;
                if (ret == "ok") {
                	 Ext.Msg.alert('提示','成功');
                } else {
                     Ext.Msg.alert('提示','失败');
                }
            }
        }
    }
});